Skip to content

Instantly share code, notes, and snippets.

View dain's full-sized avatar

Dain Sundstrom dain

View GitHub Profile
@dain
dain / Directions for creating PEM files
Last active October 16, 2023 09:11
Create Java KeyStore from standard PEM encoded private key and certificate chain files
# To regenerate the test key and certificates
# Generate an RSA private key and convert it to PKCS8 wraped in PEM
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform pem -outform pem -nocrypt -out rsa.key
# Generate a certificate signing request with the private key
openssl req -new -key rsa.key -out rsa.csr
# Sign request with private key
openssl x509 -req -days 10000 -in rsa.csr -signkey rsa.key -out rsa.crt
@dain
dain / example-stack.txt
Created October 23, 2018 21:42
Example exception output for leak detected in TestingPooledByteBufAllocator
java.lang.AssertionError: LEAK: 2 leak(s) detected. ByteBuf.release() was not called before it's garbage-collected. See http://netty.io/wiki/reference-counted-objects.html for more information.
== ByteBuf 1:
Recent access records:
#1:
io.netty.buffer.AdvancedLeakAwareByteBuf.getByte(AdvancedLeakAwareByteBuf.java:154)
io.netty.buffer.TestingPooledByteBufAllocatorTest.testLeakByteBufferDirect(TestingPooledByteBufAllocatorTest.java:62)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
#!/bin/bash
function setjdk {
local ver=${1?Usage: setjdk <version>}
export JAVA_HOME=$(/usr/libexec/java_home -v $ver)
PATH=$(echo $PATH | tr ':' '\n' | grep -v Java | tr '\n' ':')
export PATH=$JAVA_HOME/bin:$PATH
java -version
@dain
dain / ScanOrcFile.java
Last active December 10, 2017 02:41
Simple program to scan an ORC file
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@dain
dain / gist:6382245
Created August 29, 2013 19:17
Github remote stacktrace
$ git push foo master
Counting objects: 206, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (104/104), done.
Writing objects: 100% (164/164), 16.23 KiB, done.
Total 164 (delta 86), reused 89 (delta 42)
remote: /data/github/current/lib/github/logger.rb:1:in `require': cannot load such file -- scrolls (LoadError)
remote: from /data/github/current/lib/github/logger.rb:1:in `<top (required)>'
remote: from /data/github/current/lib/github.rb:13:in `require'
remote: from /data/github/current/lib/github.rb:13:in `<top (required)>'
public class MyMutableObject
{
private int value;
public MyMutableObject(int value)
{
this.value = value;
}
public synchronized int getValue()
@dain
dain / CallException.java
Created December 11, 2012 18:25
Java7 exception flow analysis
public class CallException
implements Callable<Boolean>
{
@Override
public Boolean call()
throws IOException
{
try {
if (Math.random() > 0) {
throw new IOException("random io failure");
package org.weakref.algorithms.graph;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.HashMap;
import java.util.Map;
import static java.lang.String.format;
import static java.util.Arrays.asList;
<dependency>
<groupId>io.airlift</groupId>
<artifactId>http-server</artifactId>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>javax.servlet</artifactId>
</exclusion>
</exclusions>
</dependency>
@dain
dain / Directions
Created August 12, 2012 00:27
Code that demonstrates problems with MLVM
Build the code with ASM 4 and Guava 12 as follows:
$ javac -cp $HOME/.m2/repository/org/ow2/asm/asm-all/4.0/asm-all-4.0.jar:$HOME/.m2/repository/com/google/guava/guava/12.0/guava-12.0.jar:. FibGeneratedAsm.java
Code can be run with:
$ ~/jdk-back/1.8.0-mlvm-2012_08_01_10_07/Contents/Home/bin/java -cp $HOME/.m2/repository/org/o/asm/asm-all/4.0/asm-all-4.0.jar:$HOME/.m2/repository/com/google/guava/guava/12.0/guava-12.0.jar:. FibGeneratedAsm