code: public void writeEndComponent() throws IOException {
  		if (stack.isEmpty()) {
  			throw new IllegalStateException(Messages.INSTANCE.getExceptionMessage(2));
  		}
  		Info cur = stack.removeLast();
  
  		if (!cur.wroteEndPropertiesArray) {
  			generator.writeEndArray();
  		}
  		if (!cur.wroteStartSubComponentsArray) {
  			generator.writeStartArray();
  		}
  
  		generator.writeEndArray(); //end sub-components array
  		generator.writeEndArray(); //end the array of this component
  
  		componentEnded = true;
  	}
docs: Closes the current component array.
  @throws IllegalStateException if there are no open components (
  {@link #writeStartComponent(String)} must be called first)
  @throws IOException if there's an I/O problem