Since you ask, yes there is a way around it 
Here’s a Quaternion->Vector conversion method ported from the code at the link provided in the comment:
/**
* <p>Returns the euler representation of the given Quaternion.</p>
*
* <p>@link{http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/}</p>
*
* @param q1 the quaternion
* @return the euler representation of the quaternion
*/
public static Vector3f convertToEuler(Quat4f q1) {
double sqw = q1.w*q1.w;
double sqx = q1.x*q1.x;
double sqy = q1.y*q1.y;
double sqz = q1.z*q1.z;
double heading;
double attitude;
double bank;
double unit = sqx + sqy + sqz + sqw; // if normalised is one, otherwise is correction factor
double test = q1.x*q1.y + q1.z*q1.w;
if (test > 0.499*unit) { // singularity at north pole
heading = 2 * Math.atan2(q1.x,q1.w);
attitude = Math.PI/2;
bank = 0;
}
if (test < -0.499*unit) { // singularity at south pole
heading = -2 * Math.atan2(q1.x,q1.w);
attitude = -Math.PI/2;
bank = 0;
}
heading = Math.atan2(2*q1.y*q1.w-2*q1.x*q1.z , sqx - sqy - sqz + sqw);
attitude = Math.asin(2*test/unit);
bank = Math.atan2(2*q1.x*q1.w-2*q1.y*q1.z , -sqx + sqy - sqz + sqw);
return new Vector3f(bank, heading, attitude);
}
I might add that code into a utility class somewhere.
Edit: The other code posted looks a bit more efficient. Would be interesting to try both and check they give the same answers. I will comment that in my experiance I have found that working in degrees instead of radians is not advised you end up doing so many conversions. Better in my experiance if you need degrees to keep them at the extremities (i.e. just before your output the value or just after you input it).
Will.