/** * Release resources. */ public void release() { if (cachedStream != null) { cachedStream.releaseTempFileHold(); } } }
public void release() { if (cache != null) { cache.releaseTempFileHold(); } }
public void release() { if (cache != null) { cache.releaseTempFileHold(); } }
public void release() { if (cache != null) { cache.releaseTempFileHold(); } }
public void release() { if (cache != null) { cache.releaseTempFileHold(); } }
private void releaseSavedMessage() { CachedOutputStream cos = (CachedOutputStream)message.get(RMMessageConstants.SAVED_CONTENT); if (cos != null) { cos.releaseTempFileHold(); try { cos.close(); } catch (IOException e) { // ignore } } // REVISIT -- When reference holder is not needed anymore, code can be removed. Closeable closeable = (Closeable)message.get(RMMessageConstants.ATTACHMENTS_CLOSEABLE); if (closeable != null) { try { closeable.close(); } catch (IOException e) { // ignore } } }
private void closeOldSavedContent(Message message) { CachedOutputStream saved = (CachedOutputStream)message.get(RMMessageConstants.SAVED_CONTENT); if (saved != null) { saved.releaseTempFileHold(); try { saved.close(); } catch (IOException e) { // ignore } } Closeable closable = (Closeable)message.get("org.apache.cxf.ws.rm.content.closeable"); if (null != closable) { try { closable.close(); } catch (IOException e) { // Ignore } } }
private void releaseSavedMessage() { CachedOutputStream saved = (CachedOutputStream)message.remove(RMMessageConstants.SAVED_CONTENT); if (saved != null) { saved.releaseTempFileHold(); try { saved.close(); } catch (IOException e) { // ignore } } // Any unclosed resources must be closed to release the temp files. Closeable closeable = (Closeable)message.get(RMMessageConstants.ATTACHMENTS_CLOSEABLE); if (closeable != null) { try { closeable.close(); } catch (IOException e) { // ignore } } }
@Override public void handleFault(Message message) { // in case of a SequenceFault SAVED_CONTENT must be released Exception ex = message.getContent(Exception.class); if (ex instanceof SequenceFault) { Closeable closable = (Closeable)message.get("org.apache.cxf.ws.rm.content.closeable"); if (null != closable) { try { closable.close(); } catch (IOException e) { // Ignore } } CachedOutputStream saved = (CachedOutputStream)message.get(RMMessageConstants.SAVED_CONTENT); if (saved != null) { saved.releaseTempFileHold(); try { saved.close(); } catch (IOException e) { // ignore } } } }
void processingComplete(Message message) { SequenceType sequenceType = RMContextUtils.retrieveRMProperties(message, false).getSequence(); if (null == sequenceType) { return; } DestinationSequence seq = getSequence(sequenceType.getIdentifier()); if (null != seq) { long mn = sequenceType.getMessageNumber().longValue(); seq.processingComplete(mn); seq.purgeAcknowledged(mn); // remove acknowledged undelivered message seq.removeDeliveringMessageNumber(mn); if (seq.isTerminated() && seq.allAcknowledgedMessagesDelivered()) { removeSequence(seq); } } CachedOutputStream saved = (CachedOutputStream)message.remove(RMMessageConstants.SAVED_CONTENT); if (saved != null) { saved.releaseTempFileHold(); try { saved.close(); } catch (IOException e) { // ignore } } }
private void dispatchDirect(Message message) throws IOException { if (destination.getMessageObserver() == null) { throw new IllegalStateException("Local destination does not have a MessageObserver on address " + destination.getAddress().getAddress().getValue()); } MessageImpl copy = new MessageImpl(); copy.put(IN_CONDUIT, this); copy.setDestination(destination); transportFactory.copy(message, copy); MessageImpl.copyContent(message, copy); OutputStream out = message.getContent(OutputStream.class); out.flush(); out.close(); CachedOutputStream stream = message.get(CachedOutputStream.class); copy.setContent(InputStream.class, stream.getInputStream()); copy.removeContent(CachedOutputStream.class); stream.releaseTempFileHold(); // Create a new incoming exchange and store the original exchange for the response ExchangeImpl ex = new ExchangeImpl(); ex.setInMessage(copy); ex.put(IN_EXCHANGE, message.getExchange()); ex.put(LocalConduit.DIRECT_DISPATCH, true); ex.setDestination(destination); destination.getMessageObserver().onMessage(copy); }
private void dispatchDirect(Message message) throws IOException { if (destination.getMessageObserver() == null) { throw new IllegalStateException("Local destination does not have a MessageObserver on address " + destination.getAddress().getAddress().getValue()); } MessageImpl copy = new MessageImpl(); copy.put(IN_CONDUIT, this); copy.setDestination(destination); transportFactory.copy(message, copy); MessageImpl.copyContent(message, copy); OutputStream out = message.getContent(OutputStream.class); out.flush(); out.close(); CachedOutputStream stream = message.get(CachedOutputStream.class); copy.setContent(InputStream.class, stream.getInputStream()); copy.removeContent(CachedOutputStream.class); stream.releaseTempFileHold(); // Create a new incoming exchange and store the original exchange for the response ExchangeImpl ex = new ExchangeImpl(); ex.setInMessage(copy); ex.put(IN_EXCHANGE, message.getExchange()); ex.put(LocalConduit.DIRECT_DISPATCH, true); ex.setDestination(destination); destination.getMessageObserver().onMessage(copy); }
@Override public void close(Message message) throws IOException { // set the pseudo status code if not set (REVISIT add this method in MessageUtils to be reused elsewhere?) Integer i = (Integer)message.get(Message.RESPONSE_CODE); if (i == null) { int code = ((message.getExchange().isOneWay() && !MessageUtils.isPartialResponse(message)) || MessageUtils.isEmptyPartialResponse(message)) ? 202 : 200; message.put(Message.RESPONSE_CODE, code); } if (Boolean.TRUE.equals(message.getExchange().get(LocalConduit.DIRECT_DISPATCH))) { final Exchange exchange = (Exchange)message.getExchange().get(LocalConduit.IN_EXCHANGE); MessageImpl copy = new MessageImpl(); copy.putAll(message); message.getContent(OutputStream.class).close(); CachedOutputStream stream = message.getContent(CachedOutputStream.class); message.setContent(OutputStream.class, stream); MessageImpl.copyContent(message, copy); copy.setContent(InputStream.class, stream.getInputStream()); stream.releaseTempFileHold(); if (exchange != null && exchange.getInMessage() == null) { exchange.setInMessage(copy); } conduit.getMessageObserver().onMessage(copy); return; } super.close(message); }
@Override public void close(Message message) throws IOException { // set the pseudo status code if not set (REVISIT add this method in MessageUtils to be reused elsewhere?) Integer i = (Integer)message.get(Message.RESPONSE_CODE); if (i == null) { int code = ((message.getExchange().isOneWay() && !MessageUtils.isPartialResponse(message)) || MessageUtils.isEmptyPartialResponse(message)) ? 202 : 200; message.put(Message.RESPONSE_CODE, code); } if (Boolean.TRUE.equals(message.getExchange().get(LocalConduit.DIRECT_DISPATCH))) { final Exchange exchange = (Exchange)message.getExchange().get(LocalConduit.IN_EXCHANGE); MessageImpl copy = new MessageImpl(); copy.putAll(message); message.getContent(OutputStream.class).close(); CachedOutputStream stream = message.getContent(CachedOutputStream.class); message.setContent(OutputStream.class, stream); MessageImpl.copyContent(message, copy); copy.setContent(InputStream.class, stream.getInputStream()); stream.releaseTempFileHold(); if (exchange != null && exchange.getInMessage() == null) { exchange.setInMessage(copy); } conduit.getMessageObserver().onMessage(copy); return; } super.close(message); }