Skip to content

Instantly share code, notes, and snippets.

@Override
public boolean login(User user) {
// Check if we have a valid user/pass pair
String hashedPassword = hash(user.getPassword());
String jpql = "SELECT u FROM User u WHERE u.username=:userName AND u.password=:password";
TypedQuery<User> query = entityManager.createQuery(jpql, User.class);
query.setParameter("userName", user.getUsername());
query.setParameter("password", hash);
List<User> users = query.getResultList();
return !users.isEmpty();
try {
bar.libraryCall("hello", 1);
int i = 1;
if (i < 0) {
throw new NoSuchMethodError();
}
}
catch (NoSuchMethodError e) {
bar.libraryCall("hello");
}
@jnizet
jnizet / gist:10005906
Created April 6, 2014 13:18
Test to show how iterating on a synchronized collection causes exception if another thread modifies it
package com.foo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public class SynchronizedCollectionIteration {
public static void main(String[] args) {
final CountDownLatch latch = new CountDownLatch(1);
@jnizet
jnizet / gist:10006815
Created April 6, 2014 14:28
Accessing to a non-thread-safe collection by multiple threads leads to problems
package com.foo;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public class UnsynchronizedCollectionAccess {
public static void main(String[] args) throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
final List<Integer> list = new ArrayList<Integer>();
public class CyclicBarrierTest {
public static void main(String[] args) {
final CyclicBarrier barrier = new CyclicBarrier(2);
Runnable r = new Runnable() {
@Override
public void run() {
try {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + " waits for the other ones");
@jnizet
jnizet / ExceptionRethrow.java
Created April 16, 2014 16:32
This compiles since Java 7. That was unknown to me.
public class ExceptionRethrow {
void foo() throws IOException {
try {
bar();
}
catch (Exception e) {
throw e;
}
}
public class VerticalTabDemo {
public static String buildMessage() {
StringBuilder message = new StringBuilder();
message.append('\u000b');
message.append('H');
char[] characters = message.toString().toCharArray(); // returns length 2
System.out.println("characters.length in buildMessage = " + characters.length);
dumpString(message.toString());
return message.toString();
}
public class Bar {
}
public class Foo {
@Autowired
public void setBar(Bar bar) {
System.out.println("setBar() was called");
}
}
@jnizet
jnizet / LocalDateExample.java
Created May 26, 2014 19:30
Temporal comparison example
public class LocalDateExample {
public static void main(String[] args) {
LocalDate ld1 = LocalDate.now();
LocalDate ld2 = LocalDate.now().plusDays(2);
System.out.println("comparison = " + compare(ld1, ld2));
}
private static <T extends Temporal> int compare(T t1, T t2) {
Comparable<T> c1 = (Comparable<T>) t1;
return c1.compareTo(t2);
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class LockFileTest {
public static void main(String[] args) throws IOException {
File lockFile = File.createTempFile("foo", ".lock");
int read;