當前位置: 首頁>>代碼示例>>Java>>正文


Java ClosedByInterruptException類代碼示例

本文整理匯總了Java中java.nio.channels.ClosedByInterruptException的典型用法代碼示例。如果您正苦於以下問題:Java ClosedByInterruptException類的具體用法?Java ClosedByInterruptException怎麽用?Java ClosedByInterruptException使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


ClosedByInterruptException類屬於java.nio.channels包,在下文中一共展示了ClosedByInterruptException類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: testInterruptedWaitForProxy

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
/**
 * This test sets off a blocking thread and then interrupts it, before
 * checking that the thread was interrupted
 *
 * @throws Throwable any exception other than that which was expected
 */
@Test(timeout = 10000)
public void testInterruptedWaitForProxy() throws Throwable {
  RpcThread worker = new RpcThread(100);
  worker.start();
  Thread.sleep(1000);
  assertTrue("worker hasn't started", worker.waitStarted);
  worker.interrupt();
  worker.join();
  Throwable caught = worker.getCaught();
  assertNotNull("No exception was raised", caught);
  // looking for the root cause here, which can be wrapped
  // as part of the NetUtils work. Having this test look
  // a the type of exception there would be brittle to improvements
  // in exception diagnostics.
  Throwable cause = caught.getCause();
  if (cause == null) {
    // no inner cause, use outer exception as root cause.
    cause = caught;
  }
  if (!(cause instanceof InterruptedIOException)
      && !(cause instanceof ClosedByInterruptException)) {
    throw caught;
  }
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:31,代碼來源:TestRPCWaitForProxy.java

示例2: getCharSequence

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
/**
    * Converts an input file stream into a char sequence.
    *
    * @throws IOException
    */
   static CharBuffer getCharSequence(final FileInputStream stream, Charset encoding) throws IOException {
       FileChannel channel = stream.getChannel();
       ByteBuffer bbuf = ByteBuffer.allocate((int) channel.size());
       try {
           channel.read(bbuf, 0);
       } catch (ClosedByInterruptException cbie) {
           return null;        //this is actually okay
       } finally {
           channel.close();
       }
       bbuf.rewind();
       CharBuffer cbuf = encoding.decode(bbuf);

       return cbuf;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:21,代碼來源:Utils.java

示例3: handleRefreshException

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
private void handleRefreshException(Exception e) {
    if (e instanceof AlreadyClosedException) {
        // ignore
    } else if (e instanceof RefreshFailedEngineException) {
        RefreshFailedEngineException rfee = (RefreshFailedEngineException) e;
        if (rfee.getCause() instanceof InterruptedException) {
            // ignore, we are being shutdown
        } else if (rfee.getCause() instanceof ClosedByInterruptException) {
            // ignore, we are being shutdown
        } else if (rfee.getCause() instanceof ThreadInterruptedException) {
            // ignore, we are being shutdown
        } else {
            if (state != IndexShardState.CLOSED) {
                logger.warn("Failed to perform engine refresh", e);
            }
        }
    } else {
        if (state != IndexShardState.CLOSED) {
            logger.warn("Failed to perform engine refresh", e);
        }
    }
}
 
開發者ID:justor,項目名稱:elasticsearch_my,代碼行數:23,代碼來源:IndexShard.java

示例4: position

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
/**
 * set position in events from start of file
 *
 * @param event the number of the event, starting with 0
 */
@Override
synchronized public void position(long event) {
    // if(event==size()) event=event-1;
    int newChunkNumber;
    try {
        if ((newChunkNumber = getChunkNumber(event)) != chunkNumber) {
            mapChunk(newChunkNumber);

        }
        byteBuffer.position((int) ((event * eventSizeBytes) % chunkSizeBytes));

        position = event;
    } catch (ClosedByInterruptException e3) {
        log.info("caught interrupt, probably from single stepping this file");
    } catch (ClosedChannelException cce) {
        log.warning("caught exception " + cce);
        cce.printStackTrace();
    } catch (IOException e) {
        log.warning("caught exception " + e);
        e.printStackTrace();
    } catch (IllegalArgumentException e2) {
        log.warning("caught " + e2);
        e2.printStackTrace();
    }
}
 
開發者ID:SensorsINI,項目名稱:jaer,代碼行數:31,代碼來源:AEFileInputStream.java

示例5: doUninterruptibly

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
/**
 * Perform an operation on the file, reopening the file and redoing the operation if necessary
 * if we are interrupted in the middle of the operation
 */
private long doUninterruptibly(FileOperation op) throws IOException {
  boolean interrupted = false;
  try {
    synchronized (UninterruptibleRandomAccessFile.this) {
      while (true) {
        interrupted |= Thread.interrupted();
        FileChannel d = delegate();
        long lastPosition = UninterruptibleRandomAccessFile.this.getFilePointer();
        try {
          return op.doOp(d);
        } catch (ClosedByInterruptException e) {
          interrupted = true;
          UninterruptibleRandomAccessFile.this.reopen(lastPosition);
        }
      }
    }
  } finally {
    if (interrupted) {
      Thread.currentThread().interrupt();
    }
  }
}
 
開發者ID:ampool,項目名稱:monarch,代碼行數:27,代碼來源:UninterruptibleRandomAccessFile.java

示例6: handleException

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
void handleException(DebugContext debug, IOException e) {
    if (debug != null && DebugOptions.DumpingErrorsAreFatal.getValue(debug.getOptions())) {
        throw new GraalError(e);
    }
    if (e instanceof ClosedByInterruptException) {
        /*
         * The current dumping was aborted by an interrupt so treat this as a transient failure.
         */
        failuresCount = 0;
    } else {
        failuresCount++;
    }
    printer = null;
    e.printStackTrace(TTY.out);
    if (failuresCount > FAILURE_LIMIT) {
        TTY.println("Too many failures with dumping. Disabling dump in thread " + Thread.currentThread());
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:19,代碼來源:GraphPrinterDumpHandler.java

示例7: reopen

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
private void reopen(int i, IOException e) throws IOException {
    if (i > 20) {
        throw e;
    }
    if (!(e instanceof ClosedByInterruptException) &&
            !(e instanceof ClosedChannelException)) {
        throw e;
    }
    // clear the interrupt flag, to avoid re-opening many times
    Thread.interrupted();
    FileChannel before = channel;
    // ensure we don't re-open concurrently;
    // sometimes we don't re-open, which is fine,
    // as this method is called in a loop
    synchronized (this) {
        if (before == channel) {
            open();
            reLock();
        }
    }
}
 
開發者ID:vdr007,項目名稱:ThriftyPaxos,代碼行數:22,代碼來源:FilePathRetryOnInterrupt.java

示例8: handleException

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
void handleException(IOException e) {
    if (GraalDebugConfig.Options.DumpingErrorsAreFatal.getValue(DebugScope.getConfig().getOptions())) {
        throw new GraalError(e);
    }
    if (e instanceof ClosedByInterruptException) {
        /*
         * The current dumping was aborted by an interrupt so treat this as a transient failure.
         */
        failuresCount = 0;
    } else {
        failuresCount++;
    }
    printer = null;
    if (failuresCount > FAILURE_LIMIT) {
        e.printStackTrace(TTY.out);
        TTY.println("Too many failures with dumping.  Disabling dump in thread " + Thread.currentThread());
    } else {
        TTY.println(e.getMessage());
    }
}
 
開發者ID:graalvm,項目名稱:graal-core,代碼行數:21,代碼來源:GraphPrinterDumpHandler.java

示例9: run

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
@Override
public void run()
{
	try {
		L2CAPConnection clientConnection;
		CommChannel channel;
		while ( (clientConnection = connectionNotifier.acceptAndOpen()) != null ) {
			channel = new BTL2CapCommChannel(
						clientConnection,
						inputPort().location(),
						createProtocol() );
			channel.setParentInputPort( inputPort() );
			interpreter().commCore().scheduleReceive( channel, inputPort() );
			channel = null; // Dispose for garbage collection
		}
	} catch( ClosedByInterruptException ce ) {
		try {
			connectionNotifier.close();
		} catch( IOException ioe ) {
			ioe.printStackTrace();
		}
	} catch( IOException e ) {
		e.printStackTrace();
	}
}
 
開發者ID:jolie,項目名稱:jolie,代碼行數:26,代碼來源:BTL2CapListener.java

示例10: checkDiskError

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
/** Check if there is no space in disk 
 *  @param e that caused this checkDiskError call
 **/
protected void checkDiskError(Exception e ) throws IOException {
  
  LOG.warn("checkDiskError: exception: ", e);
  if (e instanceof SocketException || e instanceof SocketTimeoutException
  	  || e instanceof ClosedByInterruptException 
  	  || e.getMessage().startsWith("An established connection was aborted")
  	  || e.getMessage().startsWith("Broken pipe")
  	  || e.getMessage().startsWith("Connection reset")
  	  || e.getMessage().contains("java.nio.channels.SocketChannel")) {
    LOG.info("Not checking disk as checkDiskError was called on a network" +
    		" related exception");	
    return;
  }
  if (e.getMessage() != null &&
      e.getMessage().startsWith("No space left on device")) {
    throw new DiskOutOfSpaceException("No space left on device");
  } else {
    checkDiskError();
  }
}
 
開發者ID:ict-carch,項目名稱:hadoop-plus,代碼行數:24,代碼來源:DataNode.java

示例11: doDownload

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
private static Void doDownload(AddonReleaseData releaseData) throws WarDownloadException {
    String warURL = releaseData.getDownloadUrl();
    String dlPath = dlPath(releaseData.getVersion());
    try {
        URL website = new URL(warURL);
        ReadableByteChannel rbc = Channels.newChannel(website.openStream());
        FileOutputStream fos = new FileOutputStream(dlPath);
        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
        try (FileInputStream fis = new FileInputStream(dlPath)) {
            String sha256 = DigestUtils.sha256Hex(fis);
            if (!sha256.equals(releaseData.getSha256())) {
                throw new WarDownloadException("Download of War file either corrupted or some 3rd party has changed the file");
            }
        }
    } catch (ClosedByInterruptException ignored) {
        App.logger.error("War download interrupted before it could complete");
    } catch (IOException e) {
        throw new WarDownloadException(e);
    }
    return null;
}
 
開發者ID:OTBProject,項目名稱:OTBProject,代碼行數:22,代碼來源:WarDownload.java

示例12: end

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
/**
 * Indicates the end of a code section that has been started with
 * {@code begin()} and that includes a potentially blocking I/O operation.
 *
 * @param success
 *            pass {@code true} if the blocking operation has succeeded and
 *            has had a noticeable effect; {@code false} otherwise.
 * @throws AsynchronousCloseException
 *             if this channel is closed by another thread while this method
 *             is executing.
 * @throws ClosedByInterruptException
 *             if another thread interrupts the calling thread while this
 *             method is executing.
 */
protected final void end(boolean success) throws AsynchronousCloseException {
    // FIXME: be accommodate before VM actually provides
    // setInterruptAction method
    if (setInterruptAction != null) {
        try {
            setInterruptAction.invoke(Thread.currentThread(),
                    new Object[] { null });
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        if (interrupted) {
            interrupted = false;
            throw new ClosedByInterruptException();
        }
    }
    if (!success && closed) {
        throw new AsynchronousCloseException();
    }
}
 
開發者ID:keplersj,項目名稱:In-the-Box-Fork,代碼行數:34,代碼來源:AbstractInterruptibleChannel.java

示例13: testSerializationSelf

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
/**
 * @tests serialization/deserialization compatibility.
 */
@TestTargets({
    @TestTargetNew(
        level = TestLevel.COMPLETE,
        notes = "Verifies serialization/deserialization compatibility.",
        method = "!SerializationSelf",
        args = {}
    ),
    @TestTargetNew(
        level = TestLevel.PARTIAL_COMPLETE,
        notes = "Verifies serialization/deserialization compatibility.",
        method = "ClosedByInterruptException",
        args = {}
    )
})
public void testSerializationSelf() throws Exception {

    SerializationTest.verifySelf(new ClosedByInterruptException());
}
 
開發者ID:keplersj,項目名稱:In-the-Box-Fork,代碼行數:22,代碼來源:ClosedByInterruptExceptionTest.java

示例14: testSerializationCompatibility

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
/**
 * @tests serialization/deserialization compatibility with RI.
 */
@TestTargets({
    @TestTargetNew(
        level = TestLevel.COMPLETE,
        notes = "Verifies serialization/deserialization compatibility.",
        method = "!SerializationGolden",
        args = {}
    ),
    @TestTargetNew(
        level = TestLevel.PARTIAL_COMPLETE,
        notes = "Verifies serialization/deserialization compatibility.",
        method = "ClosedByInterruptException",
        args = {}
    )
})
public void testSerializationCompatibility() throws Exception {

    SerializationTest.verifyGolden(this, new ClosedByInterruptException());
}
 
開發者ID:keplersj,項目名稱:In-the-Box-Fork,代碼行數:22,代碼來源:ClosedByInterruptExceptionTest.java

示例15: handleInterruptible

import java.nio.channels.ClosedByInterruptException; //導入依賴的package包/類
/***
 * 
 * @param ex
 * @return
 * @throws InterruptedException
 */
public static <T extends Throwable> T handleInterruptible(final T ex) throws InterruptedException {
  if (getInitialException(ex, ClosedByInterruptException.class) != null) {
    // This is how you detect InterruptedException from within BufferedReader.
    // I figured this out by looking at the source code for the GNU nio Channels
    // interface but it's backed up by
    // http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/ClosedByInterruptException.html
    throw (InterruptedException) new InterruptedException().initCause(ex);
  }

  if (getInitialException(ex, InterruptedException.class) != null) {
    // There was an underlying InterruptedException that was chained below another error.
    throw (InterruptedException) new InterruptedException().initCause(ex);
  }
  
  // The exception probably wasn't an InterruptedException.
  return ex;
}
 
開發者ID:zillabyte,項目名稱:motherbrain,代碼行數:24,代碼來源:Utils.java


注:本文中的java.nio.channels.ClosedByInterruptException類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。