Usually protected means only accessible to subclasses or classes in the same package. However here are the rules for constructors from the JLS:
6.6.2.2. Qualified Access to a protected Constructor
Let C be the class in which a protected constructor is declared and
  let S be the innermost class in whose declaration the use of the
  protected constructor occurs. Then:
If the access is by a superclass constructor invocation super(...),
  or a qualified superclass constructor invocation E.super(...), where E
  is a Primary expression, then the access is permitted.
If the access is by an anonymous class instance creation expression
  new C(...){...}, or a qualified anonymous class instance creation
  expression E.new C(...){...}, where E is a Primary expression, then
  the access is permitted.
If the access is by a simple class instance creation expression new
  C(...), or a qualified class instance creation expression E.new
  C(...), where E is a Primary expression, or a method reference
  expression C :: new, where C is a ClassType, then the access is not
  permitted. A protected constructor can be accessed by a class instance
  creation expression (that does not declare an anonymous class) or a
  method reference expression only from within the package in which it
  is defined.
As an example, this does not compile
public class Example extends Exception {
    void method() {
        Exception e = new Exception("Hello", null, false, false);
    }
}
but this does
public class Example extends Exception {
    Example() {
        super("Hello", null, false, false);
    }
}
and so does this
public class Example {
    void method() {
        Exception e = new Exception("Hello", null, false, false) {};
    }
}
So the rules are clear, but I can't say I understand the reasons behind them!