/** * Overridable factory method that actually instantiates desired * context object for async (non-blocking) parsing * * @since 2.9.7 */ protected IOContext _createNonBlockingContext(Object srcRef) { // [jackson-core#476]: disable buffer recycling for 2.9 to avoid concurrency issues; // easiest done by just constructing private "recycler": BufferRecycler recycler = new BufferRecycler(); return new IOContext(recycler, srcRef, false); }
/** * Main accessor to call for accessing possibly recycled {@link BufferRecycler} instance. */ public static BufferRecycler getBufferRecycler() { SoftReference<BufferRecycler> ref = _recyclerRef.get(); BufferRecycler br = (ref == null) ? null : ref.get(); if (br == null) { br = new BufferRecycler(); if (_bufferRecyclerTracker != null) { ref = _bufferRecyclerTracker.wrapAndTrack(br); } else { ref = new SoftReference<BufferRecycler>(br); } _recyclerRef.set(ref); } return br; }
protected IOContext _createNonBlockingContext(Object srcRef) { // [jackson-core#476]: disable buffer recycling for 2.9 to avoid concurrency issues; // easiest done by just constructing private "recycler": BufferRecycler recycler = new BufferRecycler(); return new IOContext(recycler, srcRef, false); }
@Override public T decode(BsonReader reader, DecoderContext decoderContext) { final IOContext ioContext = new IOContext(new BufferRecycler(), null, false); final BsonParser parser = new BsonParser(ioContext, 0, (AbstractBsonReader) reader); try { return mapper.readValue(parser, getEncoderClass()); } catch (IOException e) { throw new RuntimeException(e); } }
/** * Main accessor to call for accessing possibly recycled {@link BufferRecycler} instance. */ public static BufferRecycler getBufferRecycler() { SoftReference<BufferRecycler> ref = _recyclerRef.get(); BufferRecycler br = (ref == null) ? null : ref.get(); if (br == null) { br = new BufferRecycler(); if (_bufferRecyclerTracker != null) { ref = _bufferRecyclerTracker.wrapAndTrack(br); } else { ref = new SoftReference<BufferRecycler>(br); } _recyclerRef.set(ref); } return br; }
/** * Method used by factory to create buffer recycler instances * for parsers and generators. *<p> * Note: only public to give access for <code>ObjectMapper</code> */ public BufferRecycler _getBufferRecycler() { /* 23-Apr-2015, tatu: Let's allow disabling of buffer recycling * scheme, for cases where it is considered harmful (possibly * on Android, for example) */ if (Feature.USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING.enabledIn(_factoryFeatures)) { return BufferRecyclers.getBufferRecycler(); } return new BufferRecycler(); }
/** * Method used by factory to create buffer recycler instances * for parsers and generators. *<p> * Note: only public to give access for <code>ObjectMapper</code> */ public BufferRecycler _getBufferRecycler() { /* 23-Apr-2015, tatu: Let's allow disabling of buffer recycling * scheme, for cases where it is considered harmful (possibly * on Android, for example) */ if (Feature.USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING.enabledIn(_factoryFeatures)) { return BufferRecyclers.getBufferRecycler(); } return new BufferRecycler(); }
/** * Converts string to json */ private void compare(String string) throws IOException { JsonNode expected = mapper.readTree(string); // BSON likes encoding full document (not simple elements like BsonValue) if (!expected.isObject()) { ObjectNode temp = mapper.createObjectNode(); temp.set("ignore", expected); expected = temp; } BasicOutputBuffer buffer = new BasicOutputBuffer(); BsonWriter writer = new BsonBinaryWriter(buffer); BsonGenerator generator = new BsonGenerator(0, mapper, writer); // write mapper.writeValue(generator, expected); BsonBinaryReader reader = new BsonBinaryReader(ByteBuffer.wrap(buffer.toByteArray())); IOContext ioContext = new IOContext(new BufferRecycler(), null, false); BsonParser parser = new BsonParser(ioContext, 0, reader); // read JsonNode actual = mapper.readValue(parser, JsonNode.class); check(actual).is(expected); }
protected SoftReference<BufferRecycler> initialValue() { final BufferRecycler bufferRecycler = new BufferRecycler(); return new SoftReference<BufferRecycler>(bufferRecycler); } };
public DZoneManualWJackson() { _jsonFactory = new JsonFactory(); _writer = new SegmentedStringWriter(new BufferRecycler()); }
/** * Method used by factory to create buffer recycler instances * for parsers and generators. *<p> * Note: only public to give access for <code>ObjectMapper</code> */ public BufferRecycler _getBufferRecycler() { SoftReference<BufferRecycler> ref = _recyclerRef.get(); BufferRecycler br = (ref == null) ? null : ref.get(); if (br == null) { br = new BufferRecycler(); _recyclerRef.set(new SoftReference<BufferRecycler>(br)); } return br; }
/** * Method used by factory to create buffer recycler instances * for parsers and generators. *<p> * Note: only public to give access for <code>ObjectMapper</code> */ public BufferRecycler _getBufferRecycler() { SoftReference<BufferRecycler> ref = _recyclerRef.get(); BufferRecycler br = (ref == null) ? null : ref.get(); if (br == null) { br = new BufferRecycler(); _recyclerRef.set(new SoftReference<BufferRecycler>(br)); } return br; }
/** * Method used by factory to create buffer recycler instances * for parsers and generators. *<p> * Note: only public to give access for <code>ObjectMapper</code> */ public BufferRecycler _getBufferRecycler() { SoftReference<BufferRecycler> ref = _recyclerRef.get(); BufferRecycler br = (ref == null) ? null : ref.get(); if (br == null) { br = new BufferRecycler(); _recyclerRef.set(new SoftReference<BufferRecycler>(br)); } return br; }
/** * Method used by factory to create buffer recycler instances * for parsers and generators. *<p> * Note: only public to give access for <code>ObjectMapper</code> */ public BufferRecycler _getBufferRecycler() { SoftReference<BufferRecycler> ref = _recyclerRef.get(); BufferRecycler br = (ref == null) ? null : ref.get(); if (br == null) { br = new BufferRecycler(); _recyclerRef.set(new SoftReference<BufferRecycler>(br)); } return br; }
/** * Overridable factory method that actually instantiates desired * context object for async (non-blocking) parsing * * @since 2.9.7 */ protected IOContext _createNonBlockingContext(Object srcRef) { // [jackson-core#476]: disable buffer recycling for 2.9 to avoid concurrency issues; // easiest done by just constructing private "recycler": BufferRecycler recycler = new BufferRecycler(); return new IOContext(recycler, srcRef, false); }
@Override public T decode(BsonReader reader, DecoderContext decoderContext) { final IOContext ioContext = new IOContext(new BufferRecycler(), null, false); final BsonParser parser = new BsonParser(ioContext, 0, (AbstractBsonReader) reader); try { return mapper.readValue(parser, getEncoderClass()); } catch (IOException e) { throw new RuntimeException(e); } }
/** * Main accessor to call for accessing possibly recycled {@link BufferRecycler} instance. */ public static BufferRecycler getBufferRecycler() { SoftReference<BufferRecycler> ref = _recyclerRef.get(); BufferRecycler br = (ref == null) ? null : ref.get(); if (br == null) { br = new BufferRecycler(); if (_bufferRecyclerTracker != null) { ref = _bufferRecyclerTracker.wrapAndTrack(br); } else { ref = new SoftReference<BufferRecycler>(br); } _recyclerRef.set(ref); } return br; }
@Override public DBObject decode(InputStream in, DBCollection collection) throws IOException { JacksonDBObject<T> decoded = new JacksonDBObject<T>(); try (DBDecoderBsonParser parser = new DBDecoderBsonParser( new IOContext(new BufferRecycler(), in, false), 0, in, decoded, dbCollection, objectMapper)) { decoded.setObject((T) objectMapper.readValue(parser, type)); return decoded; } }
private T decode(InputStream in) throws IOException { JacksonDBObject<T> decoded = new JacksonDBObject<T>(); try (DBDecoderBsonParser parser = new DBDecoderBsonParser( new IOContext(new BufferRecycler(), in, false), 0, in, decoded, null, objectMapper)) { return objectMapper.reader().forType(clazz).withView(view).readValue(parser); } }
/** * Method used by factory to create buffer recycler instances * for parsers and generators. *<p> * Note: only public to give access for <code>ObjectMapper</code> */ public BufferRecycler _getBufferRecycler() { /* 23-Apr-2015, tatu: Let's allow disabling of buffer recycling * scheme, for cases where it is considered harmful (possibly * on Android, for example) */ if (Feature.USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING.enabledIn(_factoryFeatures)) { return BufferRecyclers.getBufferRecycler(); } return new BufferRecycler(); }