Skip to content

Instantly share code, notes, and snippets.

View Fuud's full-sized avatar

Fedor Bobin Fuud

View GitHub Profile
@Fuud
Fuud / NonnullAspect.java
Created November 14, 2012 16:09
NonnullAspect
package com.fxdd.common.aspects.notnull;
import java.lang.annotation.Annotation;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.reflect.CodeSignature;
@Fuud
Fuud / gist:6561408
Last active December 23, 2015 01:39
bug6568959.java
import sun.awt.SunToolkit;
import javax.swing.*;
import java.awt.*;
import java.awt.event.InputEvent;
import java.util.concurrent.atomic.AtomicReference;
/* @test
* @bug 6568959
* @summary If JTable and other focusable components are placed in internal frame one-click editors are not usable
@Fuud
Fuud / bug6921688
Last active December 23, 2015 02:59
import sun.awt.SunToolkit;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableRowSorter;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
/* @test
import javax.swing.*;
/* @test
* @bug 6921688
* @summary Lead selection index should be cleared after selection was erased
* @author Fedor Bobin
* @run main DefaultListSelectionModelTest
*/
public class DefaultListSelectionModelTest {
public static void main(String[] args) {
@Fuud
Fuud / LoopBack
Last active January 1, 2016 09:09
Смотрю микробенчмарк:
https://github.com/kuksenko/quantum/blob/master/src/main/java/quantum/selfstudy4/LoopBack.java
-----
Запускаю на
$ java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b105)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b47, mixed mode)
package quantum.selfstudy4;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.GenerateMicroBenchmark;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OperationsPerInvocation;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import quantum.util.Utils;
@Fuud
Fuud / JDK-4834738
Created April 15, 2014 07:03
Patch to add more information if NPE occures in interpreter or template interpreter.
diff -r 5380dc5d007e src/cpu/sparc/vm/templateInterpreter_sparc.cpp
--- a/src/cpu/sparc/vm/templateInterpreter_sparc.cpp Fri Feb 28 13:36:09 2014 -0800
+++ b/src/cpu/sparc/vm/templateInterpreter_sparc.cpp Sun Apr 13 10:47:04 2014 -0400
@@ -93,6 +93,10 @@
#endif
}
+address TemplateInterpreterGenerator::generate_NullPointer_handler() {
+ return generate_exception_handler("java/lang/NullPointerException", NULL);
+}
//фиксил сегодня багу с рендерерами свордфиша на восьмой джаве...
//Помнишь там хаотично бэкграунд менялся при наведении мышой?
//А в седьмой не хаотично , а упорядоченно и только в строке над которой мышь.
//бага оказалась очень милой , а фикус скрывался в сабстановском классе который хранил координаты ячеек
//в таблице и у которого были вот такие славные методы
@Override
public int compareTo(TableCellId o) {
if ((this.row == o.row) && (this.column == o.column))
@Fuud
Fuud / CompiledNpeInfoExample
Created May 7, 2014 17:34
Obtain method name and signature for NPE in compiled methods.
diff -r 8748849ebea5 src/share/vm/interpreter/bytecode.hpp
--- a/src/share/vm/interpreter/bytecode.hpp Tue Apr 15 15:37:36 2014 -0700
+++ b/src/share/vm/interpreter/bytecode.hpp Wed May 07 21:31:18 2014 +0400
@@ -213,6 +213,23 @@
// Abstraction for invoke_{virtual, static, interface, special}
class Bytecode_invoke: public Bytecode_member_ref {
+ public:
+ const char* name_and_sig_as_C_string() {
+ if (klass() == NULL || name() == NULL || signature() == NULL) {
@Fuud
Fuud / TestSt.java
Created May 13, 2014 18:04
TestNPE (with devirtualization)
public class TestSt{
public static String prevMessage;
public static void main(String[] args) throws Exception {
while (true){
testNpe();
}
}
public static void testNpe() throws Exception{