BoundedQueueThreadPoolWriteAttributeHandler doesn't deal with undefined values for core-threads correctly. It assumes the attribute will be defined, and that's not required.
The attribute doesn't have a fixed default value. Instead, the behavior in add is to set the runtime value to match max-threads of core-threads is undefined. BoundedQueueThreadPoolWriteAttributeHandler should do the same.