### Question:
ThreadDumpFactory { public @Nonnull ThreadDumpRuntime fromString(@Nonnull String runtime) { try { InputStream is = new ByteArrayInputStream(runtime.getBytes("UTF-8")); try { return fromStream(is); } finally { try { is.close(); } catch (IOException ex) {} } } catch (UnsupportedEncodingException ex) { throw new AssertionError(ex); } }  ThreadDumpFactory failOnErrors(boolean failOnErrors); @Nonnull ThreadDumpRuntime fromFile(@Nonnull File threadDump); @Nonnull ThreadDumpRuntime fromStream(@Nonnull InputStream stream); @Nonnull ThreadDumpRuntime fromString(@Nonnull String runtime);  }### Answer:
@Test public void numberInUpperLongRange() throws Exception { ThreadDumpRuntime runtime = runtimeFrom("issue-71.log"); ThreadDumpThread sut = runtime.getThreads().where(nameIs("SUT")).onlyThread(); assertEquals(-494445558, (long) sut.getTid()); assertEquals(-494445557, sut.getWaitingToLock().getId()); assertEquals(-494445556, only(sut.getAcquiredSynchronizers()).getId()); assertEquals(-494445555, (long) sut.getNid()); String human = new JvmThread.Builder(Thread.currentThread()).setName("Fake").setId(42).setTid(42).setNid(Short.MIN_VALUE).toString(); assertThat(human, containsString("nid=-32768")); sut = FACTORY.fromString(human).getThreads().where(nameIs("Fake")).onlyThread(); assertEquals(Short.MIN_VALUE, (long) sut.getNid()); }