Broker fails to process village history at start of game

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Broker fails to process village history at start of game

oliparson
When we run the simulation, the broker receives an array list of linked hashmaps containing the consumption of each village over the past 14 days. However, the broker fails to process the xml message, and consequently our broker never gets this information. It appears that the class passed to the MessageListenerRegistrar.getAssignableRegistrations(Class) is null. Here's the error:

2011-07-08 16:52:50,164 [DefaultMessageListenerContainer-1] DEBUG org.powertac.broker.infrastructure.messaging.MessageListenerRegistrar  - getAssignableRegistrations(null) - start
2011-07-08 16:52:50,166 [DefaultMessageListenerContainer-1] ERROR org.powertac.broker.infrastructure.messaging.XMLMessageReceiver  - Failed to process incoming xml message:

<xml of the message>

java.lang.NullPointerException
        at java.lang.Class.isAssignableFrom(Native Method)
        at java_lang_Class$isAssignableFrom.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
        at java_lang_Class$isAssignableFrom.call(Unknown Source)
        at org.powertac.broker.infrastructure.messaging.MessageListenerRegistrar$_getAssignableRegistrations_closure1.doCall(MessageListenerRegistrar.groovy:54)
        at sun.reflect.GeneratedMethodAccessor328.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
        at groovy.lang.Closure.call(Closure.java:282)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:2456)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1249)
        at org.codehaus.groovy.runtime.dgm$111.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
        at org.powertac.broker.infrastructure.messaging.MessageListenerRegistrar.getAssignableRegistrations(MessageListenerRegistrar.groovy:53)
        at org.powertac.broker.infrastructure.messaging.MessageListenerRegistrar$getAssignableRegistrations.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
        at org.powertac.broker.infrastructure.messaging.MessageListenerRegistrar$getAssignableRegistrations.call(Unknown Source)
        at org.powertac.broker.infrastructure.messaging.ArrayListProcessor$_onMessage_closure1.doCall(ArrayListProcessor.groovy:34)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
        at groovy.lang.Closure.call(Closure.java:282)
        at groovy.lang.Closure.call(Closure.java:295)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1220)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1196)
        at org.codehaus.groovy.runtime.dgm$110.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
        at org.powertac.broker.infrastructure.messaging.ArrayListProcessor.onMessage(ArrayListProcessor.groovy:32)
        at org.powertac.broker.infrastructure.messaging.ArrayListProcessor$onMessage.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
        at org.powertac.broker.infrastructure.messaging.MarketMessageListener$onMessage.call(Unknown Source)
        at org.powertac.broker.infrastructure.messaging.XMLMessageReceiver$_onMessage_closure1.doCall(XMLMessageReceiver.groovy:42)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
        at groovy.lang.Closure.call(Closure.java:282)
        at groovy.lang.Closure.call(Closure.java:295)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1220)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1196)
        at org.codehaus.groovy.runtime.dgm$110.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:90)
        at org.powertac.broker.infrastructure.messaging.XMLMessageReceiver.onMessage(XMLMessageReceiver.groovy:40)
        at org.powertac.broker.infrastructure.messaging.XMLMessageReceiver$onMessage.call(Unknown Source)
        at org.powertac.broker.infrastructure.messaging.MessageReceiver.onMessage(MessageReceiver.groovy:18)
        at org.powertac.broker.infrastructure.messaging.MessageReceiver$onMessage.callCurrent(Unknown Source)
        at org.powertac.broker.infrastructure.messaging.MessageReceiver.onMessage(MessageReceiver.groovy:13)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:560)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:498)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:243)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)
        at java.lang.Thread.run(Thread.java:662)
Reply | Threaded
Open this post in threaded view
|

Re: Broker fails to process village history at start of game

grampajohn
Administrator
oliparson wrote
When we run the simulation, the broker receives an array list of linked hashmaps containing the consumption of each village over the past 14 days. However, the broker fails to process the xml message, and consequently our broker never gets this information. It appears that the class passed to the MessageListenerRegistrar.getAssignableRegistrations(Class) is null. ...
Yes, we apologize for the confusion. The release went out with a discontinuity between the customer model and the demo broker. We have repaired that in the development master branch, but there's still a minor initialization problem with the customer model. We'll try to make another interim release ASAP.

John
Reply | Threaded
Open this post in threaded view
|

Re: Broker fails to process village history at start of game

HarryRose
grampajohn wrote
We'll try to make another interim release ASAP.
Are you able to give an estimate of when this release is to be made available?  Is there a work-around we can use to get the historical data in the meantime?
Reply | Threaded
Open this post in threaded view
|

Re: Broker fails to process village history at start of game

grampajohn
Administrator
On 07/11/2011 08:45 AM, HarryRose [via Power TAC Developers] wrote:
>     grampajohn wrote:
>     We'll try to make another interim release ASAP.
>
> Are you able to give an estimate of when this release is to be made
> available? Is there a work-around we can use to get the historical data
> in the meantime?

I am going to try to get it out today. I think it's ready.

John
Reply | Threaded
Open this post in threaded view
|

Re: Broker fails to process village history at start of game

achryso
In the latest powertac-common update, the CustomerBootstrapData class now has also a function getBootstrapData that returns a long[][] matrix with the historical data of the Customer. See if this does the trick for you.
Reply | Threaded
Open this post in threaded view
|

Re: Broker fails to process village history at start of game

HarryRose
Great, I've just cloned the latest master branch from your repos and I'm now receiving the populated CustomerBootstrapData objects for each customer type.  Thanks :)
Reply | Threaded
Open this post in threaded view
|

Re: Broker fails to process village history at start of game

kmeijer
I have a question regarding CustomerBootstrapData. When I observe the consumption values stored in the long[][]-array, they seem to be much larger (in the thousands) than the consumption values (the TariffTransaction-quantities) during the simulation game (only about 30 to 300 most of the time). Are the values in different units, or do the values represent something different?
Reply | Threaded
Open this post in threaded view
|

Re: Broker fails to process village history at start of game

achryso
The BoostrapData is in Watts.

We were using KWatts for the consumption but I will change it now back to watts too.Just download the latest trunk of household customers.
If any problem arise again let me know.

Cheers.

Antonios
Reply | Threaded
Open this post in threaded view
|

Re: Broker fails to process village history at start of game

Prashant Reddy
Oh, I didn't know that.  Is there a reason for using watts instead of
kiloWatts?  Aren't most tariff transactions going to be atleast in the
kiloWatt range?  If we use Watts, we'll see some very big numbers
(lots of zeros to count in UI displays) especially for producers.
Thoughts?  Thanks.

Prashant


On Wed, Jul 13, 2011 at 5:45 PM, achryso [via Power TAC Developers]
<[hidden email]> wrote:

> The BoostrapData is in Watts.
>
> We were using KWatts for the consumption but I will change it now back to
> watts too.Just download the latest trunk of household customers.
> If any problem arise again let me know.
>
> Cheers.
>
> Antonios
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://power-tac-developers.975333.n3.nabble.com/Broker-fails-to-process-village-history-at-start-of-game-tp3152262p3167480.html
> To start a new topic under Power TAC Developers, email
> [hidden email]
> To unsubscribe from Power TAC Developers, click here.
Reply | Threaded
Open this post in threaded view
|

Re: Broker fails to process village history at start of game

achryso
The Bootstrap Data has always been to Watts, but if we are going to use KWh for our quantum measure then
I will change everything into KiloWatts, including the Bootstrap Data then.

Cheers.

Antonios
Reply | Threaded
Open this post in threaded view
|

RE: Broker fails to process village history at start of game

Wolf
Administrator

Yes, all this data in the regional market should be traded in KW and in the wholesale market in MW.

 

Cheers,

 

Wolf

 

From: achryso [via Power TAC Developers] [mailto:[hidden email]]
Sent: donderdag 14 juli 2011 7:03
To: Wolf Ketter
Subject: Re: Broker fails to process village history at start of game

 

The Bootstrap Data has always been to Watts, but if we are going to use KWh for our quantum measure then
I will change everything into KiloWatts, including the Bootstrap Data then.

Cheers.

Antonios


To start a new topic under Power TAC Developers, email [hidden email]
To unsubscribe from Power TAC Developers, click here.



Disclaimer
De informatie verzonden in dit e-mail bericht inclusief de bijlage(n) is vertrouwelijk en is uitsluitend bestemd voor de geadresseerde van dit bericht. Lees verder: http://www.eur.nl/email-disclaimer.

The information in this e-mail message is confidential and may be legally privileged. Read more: http://www.eur.nl/english/email-disclaimer.