Conversation
| return oldValue; | ||
| } else if ("autoReenableTime".equalsIgnoreCase(propertyName)) { | ||
| final Object oldValue = propAutoReenableTime; | ||
| propAutoReenableTime = Integer.parseInt(newValue.toString()); |
There was a problem hiding this comment.
what happens if newValue==null?
There was a problem hiding this comment.
since the property is defined as integer in the bundle descriptor, shouldn't any generic logic ensure that it is actually an integer value when arriving at this point? Otherwise, whats the point of declaring datatypes in the bundleDescriptor?
There was a problem hiding this comment.
good point, although, semantically, "no value" (null) is not the same as 0 or could be interpreted differently. So maybe that's why you can't handle it generically.
There was a problem hiding this comment.
ok, so I should catch a NumberFormatException there? I've seen plenty plugins, where no FormatExceptions are caught at property parsing. I think any FormatExceptions in this method should be caught by default in a base plugin class, so that the creator of a plugin does not have to care about them, if he doesn't want any specific error handling.
There was a problem hiding this comment.
ok, you are right, the generic code in the DeploymentManager should do a check, if the value is conforming to the datatype specified in the bundle descriptor. If not log exceptions and proceed with datatype-specific default values.
These are the datatypes which could be easiliy checked:
https://github.com/asterics/AsTeRICS/blob/56f59f844f2a1c038ff4807ee208127d2033298b/ARE/middleware/src/main/java/eu/asterics/mw/model/DataType.java
Let's merge this PR and see if there is enough time for a generic solution.
| * samples are summed but not divided | ||
| */ | ||
| private synchronized void process(final double in) { | ||
| if (!propEnabled && buffer.size() == propBufferSize) { |
There was a problem hiding this comment.
Why do you need the check ... && buffer.size() == propBufferSize
There was a problem hiding this comment.
the idea was somehow to wait until the buffer is full, but it does not make much sense as it is now. I'll remove it.
For details see updated documentation included in this PR.
For an example use case see comment #291 (comment)